﻿// -----------------------------------------------------------------------
// <copyright file="IUrlBuilder.cs" company="">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace NetFramework.Web.Resources
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections.Specialized;
    using System.Web.Routing;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public interface IUrlBuilder
    {
		/// <summary>
		/// 构造Url
		/// </summary>
		/// <param name="pageAlias"></param>
		/// <returns></returns>
		string BuildUrl(Enum pageAlias);

		/// <summary>
		/// 构造Url
		/// </summary>
		/// <param name="pageAlias"></param>
		/// <param name="queryString">The query string. in the format of param1, value1, param2, value2, ...</param>
		/// <returns></returns>
		string BuildUrl(Enum pageAlias, params string[] queryString);

		/// <summary>
		/// 构造Url
		/// </summary>
		/// <param name="pageAlias"></param>
		/// <param name="values"></param>
		/// <returns></returns>
		string BuildUrl(Enum pageAlias, NameValueCollection values);

        /// <summary>
        /// 构造Url
        /// </summary>
        /// <param name="pageAlias"></param>
        /// <returns></returns>
        string BuildUrl(Enum pageAlias, RouteValueDictionary values);

        string BuildUrl(string pageAlias, params string[] queryString);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="pageName"></param>
		/// <param name="requestContext"></param>
		/// <returns></returns>
		string BuildPageUrl(string pageName);
    }
}
